<html>
<head><meta charset="utf-8"><title>design meeting 2020.05.26 · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html">design meeting 2020.05.26</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="198813454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198813454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198813454">(May 26 2020 at 19:56)</a>:</h4>
<p>Hi <span class="user-group-mention" data-user-group-id="692">@WG-traits</span></p>



<a name="198813463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198813463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198813463">(May 26 2020 at 19:56)</a>:</h4>
<p>5ish minutes to meeting</p>



<a name="198813477"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198813477" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198813477">(May 26 2020 at 19:56)</a>:</h4>
<p>First day of new sprint :)</p>



<a name="198813729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198813729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198813729">(May 26 2020 at 19:58)</a>:</h4>
<p>I guess we should keep the <a href="https://hackmd.io/D_wskAmRT52zL9xmhmg0Kg">sprint doc</a> updated?</p>



<a name="198813784"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198813784" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198813784">(May 26 2020 at 19:59)</a>:</h4>
<p>Yes</p>



<a name="198813807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198813807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198813807">(May 26 2020 at 19:59)</a>:</h4>
<p>Man we have a lot of pending PRs</p>



<a name="198813821"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198813821" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198813821">(May 26 2020 at 19:59)</a>:</h4>
<p>Gotta  merge some of those..</p>



<a name="198813908"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198813908" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198813908">(May 26 2020 at 20:00)</a>:</h4>
<p>/me merges <a href="https://github.com/rust-lang-nursery/chalk/issues/467">chalk#467</a></p>



<a name="198813945"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198813945" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198813945">(May 26 2020 at 20:00)</a>:</h4>
<p>Yeah, there's a few that have your name on it <span class="user-mention" data-user-id="116009">@nikomatsakis</span> :)</p>



<a name="198813977"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198813977" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198813977">(May 26 2020 at 20:00)</a>:</h4>
<p>Yeah, sorry. I opted to "unplug" pretty deep last weekend + memorial day (Monday)</p>



<a name="198813994"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198813994" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198813994">(May 26 2020 at 20:01)</a>:</h4>
<p>and today's been busy</p>



<a name="198814015"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814015" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814015">(May 26 2020 at 20:01)</a>:</h4>
<p>but I'll take some time after the meeting to do more reviewing</p>



<a name="198814023"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814023" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814023">(May 26 2020 at 20:01)</a>:</h4>
<p>and maybe filing some bugs and things</p>



<a name="198814060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814060">(May 26 2020 at 20:01)</a>:</h4>
<p>Particularly <a href="https://github.com/rust-lang/chalk/pull/472">https://github.com/rust-lang/chalk/pull/472</a> and <a href="https://github.com/rust-lang/chalk/pull/433">https://github.com/rust-lang/chalk/pull/433</a></p>



<a name="198814111"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814111" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814111">(May 26 2020 at 20:02)</a>:</h4>
<p>I was looking at <a href="https://github.com/rust-lang-nursery/chalk/issues/472">chalk#472</a> right now</p>



<a name="198814160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814160">(May 26 2020 at 20:02)</a>:</h4>
<p>Anyways, meeting time :)</p>



<a name="198814245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814245">(May 26 2020 at 20:02)</a>:</h4>
<p>Let's start with updates, or do we have an agenda somewhere?</p>



<a name="198814250"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814250" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814250">(May 26 2020 at 20:02)</a>:</h4>
<p>We have a nice number of people around today</p>



<a name="198814267"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814267" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814267">(May 26 2020 at 20:02)</a>:</h4>
<p>ugh yeah, I gotta find the agenda</p>



<a name="198814291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mark Drobnak <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814291">(May 26 2020 at 20:03)</a>:</h4>
<p>I don't see anything listed for today: <a href="https://hackmd.io/nrhN5A8sR2eY9UdfJTKcJg">https://hackmd.io/nrhN5A8sR2eY9UdfJTKcJg</a></p>



<a name="198814333"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814333" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814333">(May 26 2020 at 20:03)</a>:</h4>
<p>will be hard to find if there isn't one <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>



<a name="198814340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814340">(May 26 2020 at 20:03)</a>:</h4>
<p><a href="https://hackmd.io/nrhN5A8sR2eY9UdfJTKcJg?both">https://hackmd.io/nrhN5A8sR2eY9UdfJTKcJg?both</a></p>



<a name="198814377"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814377" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814377">(May 26 2020 at 20:03)</a>:</h4>
<p>same doc we've been using</p>



<a name="198814475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814475">(May 26 2020 at 20:04)</a>:</h4>
<p>seems like the main thing for today is probably a "status update"?</p>



<a name="198814546"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814546" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814546">(May 26 2020 at 20:05)</a>:</h4>
<p>Yeah, I don't know if we have anything in particular to talk about</p>



<a name="198814631"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814631" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814631">(May 26 2020 at 20:05)</a>:</h4>
<p>I guess, maybe it's worth some time to consider if there are any design questions we want to plan for during the next 6 weeks</p>



<a name="198814642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814642">(May 26 2020 at 20:05)</a>:</h4>
<p>(similar to how we had a meeting for consts and implied bounds)</p>



<a name="198814716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814716">(May 26 2020 at 20:06)</a>:</h4>
<p>I guess for implied bounds, did we ever even actually get to the problem?</p>



<a name="198814717"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814717" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814717">(May 26 2020 at 20:06)</a>:</h4>
<p>Uhh we can discuss two things</p>



<a name="198814772"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814772" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814772">(May 26 2020 at 20:06)</a>:</h4>
<p>That is, what to do with consts in chalk writer</p>



<a name="198814783"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814783" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814783">(May 26 2020 at 20:07)</a>:</h4>
<p>Maybe we can discuss how to design the shared type library in one such meeting</p>



<a name="198814847"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814847" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814847">(May 26 2020 at 20:07)</a>:</h4>
<p>And wf checks for arrays and tuples and such</p>



<a name="198814853"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814853" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814853">(May 26 2020 at 20:07)</a>:</h4>
<p>For the shared type library, we already had one design meeting on the high-level concept</p>



<a name="198814871"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814871" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814871">(May 26 2020 at 20:07)</a>:</h4>
<p>I guess it might be useful to have a spur towards making some more concrete proposal</p>



<a name="198814922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814922">(May 26 2020 at 20:08)</a>:</h4>
<p>Maybe wf checks in general, even</p>



<a name="198814936"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814936" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nathan Whitaker <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814936">(May 26 2020 at 20:08)</a>:</h4>
<p>Yeah I too would like to clarify the plan for WF checks</p>



<a name="198814940"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814940" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814940">(May 26 2020 at 20:08)</a>:</h4>
<p>I think when it comes to implied bounds that we definitely didn't "finish"</p>



<a name="198814948"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814948" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814948">(May 26 2020 at 20:08)</a>:</h4>
<p>that is related to wf checks</p>



<a name="198814990"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198814990" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198814990">(May 26 2020 at 20:08)</a>:</h4>
<p>well maybe only conceptually</p>



<a name="198815006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815006">(May 26 2020 at 20:08)</a>:</h4>
<p>We def didn't, we had a high-level overview and that's it</p>



<a name="198815100"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815100" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815100">(May 26 2020 at 20:09)</a>:</h4>
<p>right and in particular we didn't get to the "problem" I was concerned about or talk about ways we might solve it</p>



<a name="198815122"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815122" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815122">(May 26 2020 at 20:09)</a>:</h4>
<p>can we collect these ideas into a list in the hackmd?</p>



<a name="198815180"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815180" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815180">(May 26 2020 at 20:10)</a>:</h4>
<p>/me starts a list</p>



<a name="198815271"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815271" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815271">(May 26 2020 at 20:11)</a>:</h4>
<p>another possible topic</p>



<a name="198815275"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815275" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815275">(May 26 2020 at 20:11)</a>:</h4>
<p>would be to review coherence</p>



<a name="198815296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815296">(May 26 2020 at 20:11)</a>:</h4>
<p>like, what code is there, and what would it look like to integrate that more into rustc</p>



<a name="198815356"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815356" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815356">(May 26 2020 at 20:11)</a>:</h4>
<p>should we go over updates on the <a href="https://hackmd.io/D_wskAmRT52zL9xmhmg0Kg?edit">current sprint status</a>?</p>



<a name="198815456"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815456" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815456">(May 26 2020 at 20:12)</a>:</h4>
<p>Do we <em>have</em> any updates?</p>



<a name="198815494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815494">(May 26 2020 at 20:12)</a>:</h4>
<p>maybe not :)</p>



<a name="198815501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815501">(May 26 2020 at 20:13)</a>:</h4>
<p>I don't think so</p>



<a name="198815533"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815533" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mark Drobnak <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815533">(May 26 2020 at 20:13)</a>:</h4>
<p>I solved the <code>T = N, T = char</code> issue on the int/float PR: <a href="https://github.com/rust-lang-nursery/chalk/issues/470">chalk#470</a></p>



<a name="198815549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815549">(May 26 2020 at 20:13)</a>:</h4>
<p>I've been thinking about the recursive solver</p>



<a name="198815556"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815556" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815556">(May 26 2020 at 20:13)</a>:</h4>
<p>and salsa integration</p>



<a name="198815573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815573">(May 26 2020 at 20:13)</a>:</h4>
<p>I think I have a "picture" of what I think we shoud do, but I have to try and communicate it :P</p>



<a name="198815595"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815595" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815595">(May 26 2020 at 20:13)</a>:</h4>
<p>which reminds that I owe..somebody..some feedback on their PR</p>



<a name="198815596"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815596" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815596">(May 26 2020 at 20:13)</a>:</h4>
<p>Opaque types: got some help with generics (thanks <span class="user-mention" data-user-id="230601">@Nathan Whitaker</span>!), have a in-progress branch on WF checks, and I should look into making the hidden type lazily requested</p>



<a name="198815637"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815637" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815637">(May 26 2020 at 20:14)</a>:</h4>
<p>I've got the opaque types support mostly working in RA, ran into <a href="https://github.com/rust-lang/chalk/pull/473">https://github.com/rust-lang/chalk/pull/473</a> though</p>



<a name="198815675"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815675" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815675">(May 26 2020 at 20:14)</a>:</h4>
<blockquote>
<p>I think I have a "picture" of what I think we shoud do, but I have to try and communicate it :P</p>
</blockquote>
<p>yeah, it's not very clear to me yet ;)</p>



<a name="198815681"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815681" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zahari Dichev <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815681">(May 26 2020 at 20:14)</a>:</h4>
<p>I have been wanting to get involved in this particular work-stream (the rec solver). Almost done with  addressing the comments on <a href="https://github.com/rust-lang/chalk/pull/457">https://github.com/rust-lang/chalk/pull/457</a></p>



<a name="198815710"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815710" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815710">(May 26 2020 at 20:14)</a>:</h4>
<p>OK, great! I will try to respond <span class="user-mention" data-user-id="283967">@Zahari Dichev</span> with some comments specificaly about that aspect</p>



<a name="198815750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815750">(May 26 2020 at 20:15)</a>:</h4>
<p><span class="user-mention" data-user-id="129457">@Florian Diebold</span> in <a href="https://github.com/rust-lang/rust/issues/473">#473</a>, I see this comment:</p>
<blockquote>
<p>chalk-integration represents opaque types as placeholders immediately</p>
</blockquote>
<p>and indeed that doesn't seem right to me...</p>



<a name="198815806"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815806" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815806">(May 26 2020 at 20:15)</a>:</h4>
<p>So, I have a PR (that I'm addressing review comments for now) to make chalk-engine depend on chalk-ir</p>



<a name="198815817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815817">(May 26 2020 at 20:15)</a>:</h4>
<p>instead of the other way around</p>



<a name="198815866"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815866" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815866">(May 26 2020 at 20:16)</a>:</h4>
<p>Which should actually make things a lot cleaner</p>



<a name="198815895"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815895" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815895">(May 26 2020 at 20:16)</a>:</h4>
<p>far fewer generics, for sure</p>



<a name="198815916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815916">(May 26 2020 at 20:16)</a>:</h4>
<p>I guess that raises the question of whether to move recursive solver into chalk-engine crate</p>



<a name="198815921"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815921" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815921">(May 26 2020 at 20:16)</a>:</h4>
<p>Fewer generics, fewer "helper" functions</p>



<a name="198815939"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815939" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815939">(May 26 2020 at 20:16)</a>:</h4>
<p>Hmm</p>



<a name="198815945"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815945" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815945">(May 26 2020 at 20:16)</a>:</h4>
<p><span class="user-mention" data-user-id="251766">@Areredify</span> what is the status of the semantic-vs-syntactic equality PR?</p>



<a name="198815966"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815966" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815966">(May 26 2020 at 20:17)</a>:</h4>
<p>I am battling a bug in the solver</p>



<a name="198815979"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198815979" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198815979">(May 26 2020 at 20:17)</a>:</h4>
<p>I think Im fairly close</p>



<a name="198816033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zahari Dichev <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816033">(May 26 2020 at 20:17)</a>:</h4>
<p>I have a question wrt to the recursive solver. After the particular problems with it are addressed are there plans to try and come up with some more principled ways of comparing it with the SLG. I see there is the goal of putting together benchmarks. I guess that could be one such point of comparison</p>



<a name="198816100"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816100" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816100">(May 26 2020 at 20:18)</a>:</h4>
<p>Somewhere in the process of solving my inference var universe gets mapped to a wrong universe</p>



<a name="198816150"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816150" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816150">(May 26 2020 at 20:18)</a>:</h4>
<p><span class="user-mention" data-user-id="283967">@Zahari Dichev</span> we haven't made many plans, but in my view it comes down less to <em>performance</em> than to more qualitiative differences, at least thus far</p>



<a name="198816154"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816154" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816154">(May 26 2020 at 20:18)</a>:</h4>
<p>I also did some work this weekend on chalk-engine and how it handles ambiguous results</p>



<a name="198816161"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816161" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816161">(May 26 2020 at 20:18)</a>:</h4>
<p>(see <a href="https://github.com/rust-lang/chalk/pull/433">https://github.com/rust-lang/chalk/pull/433</a>)</p>



<a name="198816265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816265">(May 26 2020 at 20:19)</a>:</h4>
<p>ah interesting</p>



<a name="198816288"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816288" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816288">(May 26 2020 at 20:19)</a>:</h4>
<p>I have a subgoal <code>AliasEq(&lt;!1_0 as Trait&gt;::Item, ?0)</code>, <code>?0</code> in <code>U1</code>; but when going to solve this subgoal <code>?0</code> gets remapped to <code>U0</code>, and it cant unify with <code>(Trait::Item)&lt;!1_0&gt;</code></p>



<a name="198816358"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816358" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816358">(May 26 2020 at 20:20)</a>:</h4>
<p>Hmm</p>



<a name="198816366"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816366" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816366">(May 26 2020 at 20:20)</a>:</h4>
<p>I feel like I saw that bug once before</p>



<a name="198816375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816375">(May 26 2020 at 20:20)</a>:</h4>
<p>Maybe in rustc:P</p>



<a name="198816396"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816396" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816396">(May 26 2020 at 20:20)</a>:</h4>
<p>inference variables unifying with placeholders?</p>



<a name="198816414"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816414" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816414">(May 26 2020 at 20:20)</a>:</h4>
<p>No, the problem had to do with the universe remapping losing details</p>



<a name="198816427"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816427" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816427">(May 26 2020 at 20:20)</a>:</h4>
<p>oh</p>



<a name="198816435"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816435" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816435">(May 26 2020 at 20:20)</a>:</h4>
<p>actually <span class="user-mention" data-user-id="251766">@Areredify</span> I think it was on my previous branch that did sem-to-syn-eq :)</p>



<a name="198816456"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816456" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816456">(May 26 2020 at 20:21)</a>:</h4>
<p>I should go look if I have a commit somewhere that fixes it</p>



<a name="198816466"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816466" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816466">(May 26 2020 at 20:21)</a>:</h4>
<p>I remember fixing it, in any case</p>



<a name="198816553"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816553" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816553">(May 26 2020 at 20:21)</a>:</h4>
<p>You fixed a bug and didn't commit it into master <span aria-label="scream" class="emoji emoji-1f631" role="img" title="scream">:scream:</span></p>



<a name="198816618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816618">(May 26 2020 at 20:22)</a>:</h4>
<p>/me guilty</p>



<a name="198816658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816658">(May 26 2020 at 20:22)</a>:</h4>
<p>Well, as long as you also didn't commit a new bug to master, it all evens out</p>



<a name="198816665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816665">(May 26 2020 at 20:22)</a>:</h4>
<p>well, seems like we could end the meeting early if we wanted?</p>



<a name="198816718"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816718" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816718">(May 26 2020 at 20:23)</a>:</h4>
<p>if we're still doing updates, super-tuple and I made good progress on the .chalk file writer, and found two new questions (const values and finding everything necessary for wellformedness)</p>
<p>Besides that, we've still got some catching up to do with new features</p>



<a name="198816745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816745">(May 26 2020 at 20:23)</a>:</h4>
<p>I guess -- if I were going to spend a few hours doing chalk things, what's the most useful? seems like</p>
<ul>
<li>reviewing</li>
<li>writing notes about recursive solve?</li>
<li>maybe creating some bugs or updating things?</li>
</ul>



<a name="198816856"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816856" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816856">(May 26 2020 at 20:24)</a>:</h4>
<p>Those all sound good</p>



<a name="198816871"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816871" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816871">(May 26 2020 at 20:24)</a>:</h4>
<p>If you wanted to <em>write</em> something</p>



<a name="198816891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816891">(May 26 2020 at 20:24)</a>:</h4>
<p>you <em>could</em> just do the lifetime outlives stuff</p>



<a name="198816911"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816911" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816911">(May 26 2020 at 20:24)</a>:</h4>
<p>(since you already have a branch and I keep putting it off)</p>



<a name="198816965"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198816965" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198816965">(May 26 2020 at 20:25)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26/near/198816665">said</a>:</p>
<blockquote>
<p>well, seems like we could end the meeting early if we wanted?</p>
</blockquote>
<p>We can discuss the const in writer stuff, I don't think it deserves a whole another meeting</p>



<a name="198817129"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817129" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817129">(May 26 2020 at 20:26)</a>:</h4>
<p>ok, what's the question there?</p>



<a name="198817183"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817183" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817183">(May 26 2020 at 20:26)</a>:</h4>
<p>I can go over this</p>



<a name="198817214"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817214" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817214">(May 26 2020 at 20:26)</a>:</h4>
<p>Ayy I fixed the bug</p>



<a name="198817242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817242">(May 26 2020 at 20:27)</a>:</h4>
<p>I think the main question is how we should represent const values in .chalk files, especially when those values come from executing the writer within rustc</p>



<a name="198817310"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817310" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817310">(May 26 2020 at 20:27)</a>:</h4>
<p>the first part is representing evaluated constants, which we have a few options for, and the second part being representing unevaluated constants, which I can't think of any way to do besides just not doing it</p>



<a name="198817421"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817421" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mark Drobnak <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817421">(May 26 2020 at 20:28)</a>:</h4>
<p>Can we store the unevaluated constants in a string-like format? Like, if it's <code>{ N * 2 }</code> store it like that?</p>



<a name="198817468"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817468" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817468">(May 26 2020 at 20:29)</a>:</h4>
<p>hmm</p>



<a name="198817475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817475">(May 26 2020 at 20:29)</a>:</h4>
<p>If a constant stays unevaluated, I don't think it was actually needed for trait solving, so it might not actually be that important to represent it fully</p>



<a name="198817478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817478">(May 26 2020 at 20:29)</a>:</h4>
<p>for evaluated constants, I think the two main ideas were to<br>
A) do a N^2 loop over everything we find, calling const_eq to figure out which are the same<br>
B) ask the interner to output some kind of data structure we can compare nicely (like having things implement Serialize)</p>



<a name="198817481"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817481" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817481">(May 26 2020 at 20:29)</a>:</h4>
<p>I guess it'd be good to think about our goals exactly too</p>



<a name="198817500"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817500" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817500">(May 26 2020 at 20:29)</a>:</h4>
<p><span class="user-mention" data-user-id="218805">@Mark Drobnak</span>  We can't, really, because whats if its a function call or dependent on a local variable or something</p>



<a name="198817528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817528">(May 26 2020 at 20:29)</a>:</h4>
<p>i.e., in an ideal world, when we use this chalk-solve infra,</p>



<a name="198817548"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817548" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mark Drobnak <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817548">(May 26 2020 at 20:29)</a>:</h4>
<p>Can a constant depend on a local variable, or just other constants though?</p>



<a name="198817550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817550">(May 26 2020 at 20:29)</a>:</h4>
<p>we get back a test that we can run with chalk's infra without requiring rustc</p>



<a name="198817638"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817638" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817638">(May 26 2020 at 20:30)</a>:</h4>
<p>but we probaly won't support the full range of constant expressions etc</p>



<a name="198817700"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817700" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817700">(May 26 2020 at 20:31)</a>:</h4>
<p>or at least if we did so it'd basically pull in all of rustc</p>



<a name="198817755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817755">(May 26 2020 at 20:31)</a>:</h4>
<p>seems like the ideal wuld be to kind of support what constants we <em>can</em> somehow?</p>



<a name="198817766"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817766" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817766">(May 26 2020 at 20:31)</a>:</h4>
<p>( not sure what'd be best for the other cases )</p>



<a name="198817903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817903">(May 26 2020 at 20:33)</a>:</h4>
<p>ok, I'm paging in a bit more. I mean we're instrumenting some of the calls to rustc</p>



<a name="198817927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817927">(May 26 2020 at 20:33)</a>:</h4>
<p>so this also comes back to "what is the interface for const evaluation to the surrounding environment",  right?</p>



<a name="198817937"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817937" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817937">(May 26 2020 at 20:33)</a>:</h4>
<p>Try to reparse the span of a MIR body we are given into a basic arithmetic expression involving only variables chalk sees?</p>



<a name="198817943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817943">(May 26 2020 at 20:33)</a>:</h4>
<p>e.g., if we see "evaluate this constant" and we get back an evaluated constant result</p>



<a name="198817956"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198817956" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Areredify <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198817956">(May 26 2020 at 20:33)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26/near/198817927">said</a>:</p>
<blockquote>
<p>so this also comes back to "what is the interface for const evaluation to the surrounding environment",  right?</p>
</blockquote>
<p>Exactly</p>



<a name="198818031"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818031" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818031">(May 26 2020 at 20:34)</a>:</h4>
<p>in principle we could "encode" that in a <code>.chalk</code> file via some kind of declaration that says</p>
<p>"a constant that, when evaluated with these parameters, yields this result"</p>
<p>except for the extra that fun that doing so might (e.g.) result in recursive trait solving, not sure how relevant that is</p>



<a name="198818101"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818101" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818101">(May 26 2020 at 20:35)</a>:</h4>
<p>I'm of the opinion that we should start out extremely simple</p>



<a name="198818105"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818105" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818105">(May 26 2020 at 20:35)</a>:</h4>
<p>do you think adding that infrastructure to the chalk&lt;-&gt;rustc interface would be worth it for supporting this case?</p>



<a name="198818112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mark Drobnak <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818112">(May 26 2020 at 20:35)</a>:</h4>
<p>Is it possible to pre-evaluate all of the constants?</p>



<a name="198818117"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818117" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818117">(May 26 2020 at 20:35)</a>:</h4>
<p>I was just wondering "what's the simplest thing that can possibly work"</p>



<a name="198818121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818121">(May 26 2020 at 20:35)</a>:</h4>
<p>I guess "not supporting constants", probably :)</p>



<a name="198818138"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818138" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818138">(May 26 2020 at 20:35)</a>:</h4>
<p>that's what I was about to say</p>



<a name="198818146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818146">(May 26 2020 at 20:35)</a>:</h4>
<p>or translating them all to the number <code>22</code> or whatever</p>



<a name="198818213"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818213" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818213">(May 26 2020 at 20:36)</a>:</h4>
<p>I really would like to get something landed :)</p>



<a name="198818223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818223">(May 26 2020 at 20:36)</a>:</h4>
<p>right</p>



<a name="198818238"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818238" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818238">(May 26 2020 at 20:36)</a>:</h4>
<p>especially for parts where there isn't really a design problem</p>



<a name="198818274"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818274" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818274">(May 26 2020 at 20:36)</a>:</h4>
<p>Does rust-analyzer handle consts?</p>



<a name="198818315"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818315" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818315">(May 26 2020 at 20:36)</a>:</h4>
<p>At least not through Chalk yet, right?</p>



<a name="198818351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818351">(May 26 2020 at 20:37)</a>:</h4>
<p>(cc <span class="user-mention" data-user-id="129457">@Florian Diebold</span> <span aria-label="point up" class="emoji emoji-1f446" role="img" title="point up">:point_up:</span> )</p>



<a name="198818368"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818368" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818368">(May 26 2020 at 20:37)</a>:</h4>
<p>I would guess no, I don't think we're using them much in libstd, and they're not standard Rust</p>



<a name="198818376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818376">(May 26 2020 at 20:37)</a>:</h4>
<p>well modulo array types I guess :)</p>



<a name="198818396"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818396" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818396">(May 26 2020 at 20:37)</a>:</h4>
<p>right</p>



<a name="198818455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818455">(May 26 2020 at 20:38)</a>:</h4>
<p>so I think even if we don't support consts <em>at all</em> intitially</p>



<a name="198818460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818460">(May 26 2020 at 20:38)</a>:</h4>
<p>anyway I definitely think concerns about this should not block a PR from landing</p>



<a name="198818467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818467">(May 26 2020 at 20:38)</a>:</h4>
<p>I'd be fine with just <code>panic!("TBD")</code></p>



<a name="198818472"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818472" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818472">(May 26 2020 at 20:38)</a>:</h4>
<p>yep</p>



<a name="198818478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818478">(May 26 2020 at 20:38)</a>:</h4>
<p>alright - just not supporting constants sounds reasonable to me</p>



<a name="198818484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818484">(May 26 2020 at 20:38)</a>:</h4>
<p>speaking of design problems though, I have another potential one from the .chalk writer if we have time?</p>



<a name="198818493"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818493" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818493">(May 26 2020 at 20:38)</a>:</h4>
<p>we have time :)</p>



<a name="198818520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818520">(May 26 2020 at 20:38)</a>:</h4>
<p>(time check: 22 minutes left to fill)</p>



<a name="198818526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818526">(May 26 2020 at 20:38)</a>:</h4>
<p>cool! the other thing we ran into was how the writer should find things necessary for well-formedness</p>



<a name="198818553"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818553" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818553">(May 26 2020 at 20:39)</a>:</h4>
<p>can you give an example of what you mean?</p>



<a name="198818561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818561">(May 26 2020 at 20:39)</a>:</h4>
<p>e.i., if some goal queries for a trait impl and we record that trait and struct, how do we then find all the other impls/traits/structs necessary to make the impl sound?</p>



<a name="198818567"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818567" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818567">(May 26 2020 at 20:39)</a>:</h4>
<p>i'll grab a piece of code</p>



<a name="198818605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818605">(May 26 2020 at 20:39)</a>:</h4>
<p>we don't handle consts at all in RA currently, we even ignore array sizes</p>



<a name="198818606"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818606" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818606">(May 26 2020 at 20:39)</a>:</h4>
<p>oh, hmm, like if the surrounding program didn't try to prove the impl sound?</p>



<a name="198818624"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818624" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818624">(May 26 2020 at 20:40)</a>:</h4>
<p>that brings up a related question</p>



<a name="198818685"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818685" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818685">(May 26 2020 at 20:40)</a>:</h4>
<p>Ah - I mean the surrounding program does prove the impl sound, but we aren't currently grabbing the whole surrounding program</p>



<a name="198818703"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818703" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818703">(May 26 2020 at 20:40)</a>:</h4>
<p>I've never been totally happy with how the chalk tests "implicitly" run coherence + WF checks on the test cases</p>



<a name="198818752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818752">(May 26 2020 at 20:40)</a>:</h4>
<p>partly because it makes the debug output annoyingly verbose :P</p>



<a name="198818791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818791">(May 26 2020 at 20:41)</a>:</h4>
<p><span class="user-mention" data-user-id="218710">@David Ross</span> maybe I am missing a bit of basic context, but I've been assuming that you will aggregate all the info that chalk ever requests, right? (and dump it out)</p>



<a name="198818793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818793">(May 26 2020 at 20:41)</a>:</h4>
<p>For example, if the query "S: Child" is run on this:</p>
<div class="codehilite"><pre><span></span><code>struct S {}

trait Parent {}
trait Child where Self: Parent {}
impl Parent for S {}
impl Child for S {}
</code></pre></div>


<p>our current strategy of just recording all the types going through the RustIrDatabase  completely misses that <code>Parent</code> exists, and also the <code>impl Child for Parent {}</code> impl</p>



<a name="198818805"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818805" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818805">(May 26 2020 at 20:41)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> hehe see <a href="https://github.com/rust-lang/chalk/issues/299">https://github.com/rust-lang/chalk/issues/299</a></p>



<a name="198818898"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818898" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818898">(May 26 2020 at 20:42)</a>:</h4>
<p>right - we could definitely do that. We're currently skipping the well formedness / coherence stuff from the tests since it seemed like that would just always grab the whole program</p>



<a name="198818917"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818917" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818917">(May 26 2020 at 20:42)</a>:</h4>
<p>and I thought part of the point was to grab a minimal subset of it?</p>



<a name="198818925"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818925" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818925">(May 26 2020 at 20:42)</a>:</h4>
<p>I guess the question is</p>



<a name="198818934"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818934" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818934">(May 26 2020 at 20:42)</a>:</h4>
<p>well hmm</p>



<a name="198818979"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198818979" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198818979">(May 26 2020 at 20:43)</a>:</h4>
<p>I was going to say why do you care that <code>Parent</code> etc exists</p>



<a name="198819024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819024">(May 26 2020 at 20:43)</a>:</h4>
<p>but if you don't have it then it's not even that the "wf checks" and coherence checks will fail, but basic name resolution</p>



<a name="198819124"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819124" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819124">(May 26 2020 at 20:44)</a>:</h4>
<p>still, in order to execute the test, if you <em>disable</em> the "WF checks", all you would need is to know the trait exists (and not to know about the <code>impl Parent for S</code>)</p>



<a name="198819137"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819137" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819137">(May 26 2020 at 20:44)</a>:</h4>
<p>right?</p>



<a name="198819160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819160">(May 26 2020 at 20:44)</a>:</h4>
<p>hmm yeah - that seems reasonable. We could just disable WF checks on the result, then?</p>



<a name="198819176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819176">(May 26 2020 at 20:44)</a>:</h4>
<p>I'm just musing out loud; but it seems plausible that we could have some kind of "closure" check that goes to look for "traits and types references from where clauses" or something</p>



<a name="198819208"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819208" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819208">(May 26 2020 at 20:45)</a>:</h4>
<p>(or we just generate dummy descriptions even, if they are missing..?)</p>



<a name="198819212"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819212" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819212">(May 26 2020 at 20:45)</a>:</h4>
<p>for passing name resolution, one solution was to do a callback and ensure we "find" every name we print</p>



<a name="198819244"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819244" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819244">(May 26 2020 at 20:45)</a>:</h4>
<p>right, that's I think what I meant by "closure" check</p>



<a name="198819261"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819261" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819261">(May 26 2020 at 20:45)</a>:</h4>
<p>not closure in the "anonymous function" sense, but the more mathematical sense</p>



<a name="198819314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819314">(May 26 2020 at 20:46)</a>:</h4>
<p>ah hm</p>



<a name="198819321"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819321" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819321">(May 26 2020 at 20:46)</a>:</h4>
<p>i.e., finding all the things that are transitively referenced</p>



<a name="198819337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819337">(May 26 2020 at 20:46)</a>:</h4>
<p>that seems like a reasonable solution, as long as we're OK with not producing well formed code</p>



<a name="198819344"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819344" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819344">(May 26 2020 at 20:46)</a>:</h4>
<p>( but I'm wondering about dummy descriptions now :)</p>



<a name="198819372"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819372" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819372">(May 26 2020 at 20:47)</a>:</h4>
<p>seems like that might wind up causing more problems, idk</p>



<a name="198819394"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819394" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819394">(May 26 2020 at 20:47)</a>:</h4>
<p>we could make dummy ones, or just ask the underlying db for the real ones? it might make a larger file, but it shouldn't contain anything totally irrelevant</p>



<a name="198819399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819399">(May 26 2020 at 20:47)</a>:</h4>
<p>i.e., if we just said "well they never requested this trait <code>Parent</code>, let's just emit <code>trait Parent { }</code>)</p>



<a name="198819416"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819416" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819416">(May 26 2020 at 20:47)</a>:</h4>
<p>perhaps while dumping things out</p>



<a name="198819459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819459">(May 26 2020 at 20:47)</a>:</h4>
<p>it would be different if you had e.g.</p>
<div class="codehilite"><pre><span></span><code><span class="k">trait</span><span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="k">trait</span><span class="w"> </span><span class="n">B</span>: <span class="nc">A</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="k">trait</span><span class="w"> </span><span class="n">C</span>: <span class="nc">B</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</code></pre></div>


<p>and a goal of <code>Foo: C</code></p>



<a name="198819496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819496">(May 26 2020 at 20:48)</a>:</h4>
<p>a true transitive algorithm would dump both <code>A</code> and <code>B</code>, but a dummy def'n might just be <code>trait B { }</code></p>



<a name="198819559"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819559" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819559">(May 26 2020 at 20:48)</a>:</h4>
<p>anyway the real question is "are we ok with non-WF results"</p>



<a name="198819568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819568">(May 26 2020 at 20:48)</a>:</h4>
<p>and it seems like .. "maybe?"</p>



<a name="198819570"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819570" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819570">(May 26 2020 at 20:48)</a>:</h4>
<p>I can see both being useful</p>



<a name="198819594"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819594" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819594">(May 26 2020 at 20:48)</a>:</h4>
<p>if we <em>did</em> want WF results, we'd have to actually run the WF checks I guess</p>



<a name="198819615"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819615" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mark Drobnak <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819615">(May 26 2020 at 20:48)</a>:</h4>
<p>It sounds like it's just a space-saving measure, going with the non-WF results?</p>



<a name="198819800"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819800" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819800">(May 26 2020 at 20:50)</a>:</h4>
<p>it could also make the results more clear if they don't contain extraneous details, maybe?</p>



<a name="198819860"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819860" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819860">(May 26 2020 at 20:51)</a>:</h4>
<p>yeah that's what I was thinking</p>



<a name="198819864"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819864" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819864">(May 26 2020 at 20:51)</a>:</h4>
<p>otoh</p>



<a name="198819867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mark Drobnak <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819867">(May 26 2020 at 20:51)</a>:</h4>
<p>Is that worth possibly incorrect results?</p>



<a name="198819870"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819870" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819870">(May 26 2020 at 20:51)</a>:</h4>
<p>for example, if the bug is in one submodule, and we run well-formedness on the entire crate, as I understand it that'd bring in all types in the crate (and maybe dependencies? not sure)</p>



<a name="198819888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819888">(May 26 2020 at 20:51)</a>:</h4>
<p>well wait</p>



<a name="198819909"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819909" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819909">(May 26 2020 at 20:51)</a>:</h4>
<p>I wouldn't want to run on the whole crate, though that might be how things are setup -- and indeed maybe it'd be hard to avoid?</p>



<a name="198819924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819924">(May 26 2020 at 20:51)</a>:</h4>
<p>but I was hoping we could run the checks just on the things we've gathered up (again there'd be a transitive nature to it)</p>



<a name="198819936"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819936" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819936">(May 26 2020 at 20:51)</a>:</h4>
<p>but keep in mind that</p>



<a name="198819944"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819944" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819944">(May 26 2020 at 20:51)</a>:</h4>
<p>the original input may also not be WF</p>



<a name="198819952"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198819952" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198819952">(May 26 2020 at 20:51)</a>:</h4>
<p>not sure how much that matters...</p>



<a name="198820007"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820007" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820007">(May 26 2020 at 20:52)</a>:</h4>
<p>I would say ti's prob better to start with non-WF results</p>



<a name="198820032"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820032" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820032">(May 26 2020 at 20:52)</a>:</h4>
<p>as it seems simpler</p>



<a name="198820193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820193">(May 26 2020 at 20:53)</a>:</h4>
<p>Agreed</p>



<a name="198820195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> David Ross <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820195">(May 26 2020 at 20:53)</a>:</h4>
<p>if it's easy to run the WF check on a subset of types in a crate, then I'd say we could just do that, but not having WF output is definitely an <del>easier</del> faster solution</p>



<a name="198820417"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820417" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820417">(May 26 2020 at 20:55)</a>:</h4>
<p>it seems like non-WF output is a good starting point</p>



<a name="198820429"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820429" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820429">(May 26 2020 at 20:55)</a>:</h4>
<p>we can add WF support later</p>



<a name="198820440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820440">(May 26 2020 at 20:55)</a>:</h4>
<p>it would basically mean some kind of "pre-dump" step</p>



<a name="198820495"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820495" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820495">(May 26 2020 at 20:56)</a>:</h4>
<p>that goes ahead and does the required WF solving on as narrow a basis as we can manage :)</p>



<a name="198820512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820512">(May 26 2020 at 20:56)</a>:</h4>
<p>(it should be possible to do per-type, per-trait, per-impl)</p>



<a name="198820581"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820581" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820581">(May 26 2020 at 20:56)</a>:</h4>
<p>Which also brings in the discussion on what we want to do for WF checks</p>



<a name="198820635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820635">(May 26 2020 at 20:57)</a>:</h4>
<p>Okay, 3 minutes left</p>



<a name="198820647"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820647" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820647">(May 26 2020 at 20:57)</a>:</h4>
<p>and other quick points?</p>



<a name="198820653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820653">(May 26 2020 at 20:57)</a>:</h4>
<p>well there are two sets of WF checks I think</p>



<a name="198820667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820667">(May 26 2020 at 20:57)</a>:</h4>
<p>just to clarify, though indeed we are quite short of time</p>



<a name="198820719"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820719" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820719">(May 26 2020 at 20:58)</a>:</h4>
<p>though I guess they're related</p>



<a name="198820754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820754">(May 26 2020 at 20:58)</a>:</h4>
<p>but I think we want to have a way that the "chalk embedded" can enable high-level goals like "do whatever checks are required for this impl/struct/trait declaration to be legal"</p>



<a name="198820764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820764">(May 26 2020 at 20:58)</a>:</h4>
<p>(which is probably what we would need here)</p>



<a name="198820822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820822">(May 26 2020 at 20:59)</a>:</h4>
<p>but we also want to define what it means for a <em>type</em> (not a struct declaration) to be well-formed, since e.g. when you call a function you have to ensure that the arguments you supply are well-formed, and so forth, and that ties into the implie-bounds things</p>



<a name="198820861"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198820861" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198820861">(May 26 2020 at 20:59)</a>:</h4>
<p>the latter are always definitely "goals" like <code>WellFormed(T)</code> (which we already have), but the former .. well, theyy could be goals, but they might also be some other interface?</p>



<a name="198821012"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198821012" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198821012">(May 26 2020 at 21:00)</a>:</h4>
<p>makes sense</p>



<a name="198821027"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198821027" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198821027">(May 26 2020 at 21:00)</a>:</h4>
<p>Anyways, that's the hour</p>



<a name="198821031"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198821031" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198821031">(May 26 2020 at 21:00)</a>:</h4>
<p>thanks everyone for coming :)</p>



<a name="198821039"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/design%20meeting%202020.05.26/near/198821039" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/design.20meeting.202020.2E05.2E26.html#198821039">(May 26 2020 at 21:00)</a>:</h4>
<p>great discussion!</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>